/**
 * 安全版本 - 返回VNode可渲染对象（避免使用v-html）
 * @param {string|number|null} value - 等效位差值
 * @returns {Array} - 返回可渲染对象数组
 *
 * 使用示例：
 * safeFormatEquivalentBitDifference('5124/-3054') => [
 *   { text: '高5124', color: '#00b56a' },
 *   { text: ' / ', color: '' },
 *   { text: '低3054', color: '#ff7d00' }
 * ]
 */
export const safeFormatEquivalentBitDifference = (value) => {
  if (value === '-' || value === null || value === undefined) {
    return [{ text: '-', color: '' }];
  }

  const strValue = String(value);
  const result = [];

  if (strValue.includes('/')) {
    strValue.split('/').forEach((part, index, array) => {
      const num = Number(part);

      if (!isNaN(num)) {
        result.push({
          text: num < 0 ? `低${Math.abs(num)}` : `高${num}`,
          color: num < 0 ? '#ff7d00' : '#00b56a',
        });
      } else {
        result.push({ text: part, color: '' });
      }

      if (index < array.length - 1) {
        result.push({ text: ' / ', color: '' }); // 这里在斜杠前后添加了空格
      }
    });
  } else {
    const num = Number(strValue);
    if (!isNaN(num)) {
      result.push({
        text: num < 0 ? `低${Math.abs(num)}` : `高${num}`,
        color: num < 0 ? '#ff7d00' : '#00b56a',
      });
    } else {
      result.push({ text: strValue, color: '' });
    }
  }

  return result;
};
